<?php

namespace app\common\exception;

use Exception;
use think\exception\Handle;
use think\exception\HttpException;
use app\common\exception\RedirectException;
use think\facade\Response;

class HttpHandle extends Handle
{

    public function render(Exception $e)
    {
        //登陆验证验证处理

        if ($e instanceof RedirectException) {
            return redirect('/admin/account/login');
        }

        if ($e instanceof NoAuthorizeException) {
            return response('', 401);
        }

        // 参数验证错误
        if ($e instanceof ValidateException) {
            return json($e->getError(), 422);
        }

        // 请求异常
        if (request()->isAjax()) {
            return zbcjson(false, $e->getMessage(), 0, 500);
        }

        //TODO::开发者对异常的操作
        //可以在此交由系统处理
        return parent::render($e);
    }
}
